<template>
  <div>
    <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
      <van-list
        v-model="loading"
        :finished="finished"
        finished-text="没有更多了"
        loading-text="正在加载中请耐心等待......"
        @load="onLoad"
      >
        <van-cell
          v-for="(item, index) in list"
          :key="index"
          :title="index + '===' + item.desc"
        />
      </van-list>
    </van-pull-refresh>
  </div>
</template>
<script>
import axios from 'axios'
export default {
  data () {
    return {
      list: [],
      loading: false,//上拉状态,只要进入onload就会变成true,数据更新完毕后，将 loading 设置成 false 即可(异步数据更新)
      finished: false,//到达底部时的状态就是true,是否已加载完成，加载完成后不再触发load事件(全部数据加载完毕finished=true)
      refreshing: false,//下了刷新
      offset: 100,
      start: 1,
      end: 25,
    };

  },
  created () {
    this.getData()


  },
  methods: {
    onLoad () {
      // 异步更新数据
      // setTimeout 仅做示例，真实场景中一般为 ajax 请求
      // setTimeout(() => {
      //   for (let i = 0; i < 10; i++) {
      //     this.list.push(this.list.length + 1);
      //   }
      // }, 3000);
      // setTimeout(()=>{
      //     // 数据全部加载完成
      //   if (this.list.length >= 20) {
      //     this.finished = true;
      //   }
      //   this. getData()
      //    // 加载状态结束
      //   this.loading = false;
      // },3000)

      //初次进入onload或者上拉都会触发load
      setTimeout(() => {
        if (this.start > 75) {
          this.finished = true
          return
        }
        this.getData()
        // 加载状态结束
        // this.loading = false
        this.start += 25
        this.end += 25
        this.loading = false// 结束当前加载
      }, 3000)



    },
    onRefresh () {
      // 清空列表数据
      this.finished = false; //finished:true 不能开启上拉 表示又可以继续上拉了

      // 重新加载数据
      // 将 loading 设置为 true，表示处于

      //加载状态
      // this.loading = false;
      this.start = 1
      this.end = 25
      this.onLoad();

    },
    async getData () {
      const res = await axios({
        url: 'http://124.223.73.204:8080/houses',
        params: {
          start: this.start,//当前页
          end: this.end,//每页显示多少条
          cityId: 'AREA|dbf46d32-7e76-1196'
        }
      })
      console.log(res.data.body.list)
      this.list = this.refreshing ? res.data.body.list : [...this.list, ...res.data.body.list]
      // this.loading = false
      this.loading = false// 结束当前加载
      this.refreshing = false//关闭下拉


    }
  },
}
</script>
<style lang='less'  scoped>
</style>
